package com.xzt.bookstore.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xzt.bookstore.dto.UserInfoDTO;
import com.xzt.bookstore.entity.Blacklist;

import java.util.List;

/**
 * 用户信息服务接口
 */
public interface UserInfoService {
    
    /**
     * 根据用户ID获取用户信息
     * @param userId 用户ID
     * @return 用户信息DTO
     */
    UserInfoDTO getUserInfo(Long userId);
    
    /**
     * 根据用户名搜索用户
     * @param username 用户名（模糊查询）
     * @return 用户信息列表
     */
    List<UserInfoDTO> searchUsersByUsername(String username);
    
    /**
     * 拉黑用户
     * @param userId 当前用户ID
     * @param blockedUserId 被拉黑的用户ID
     * @return 黑名单记录
     */
    Blacklist blockUser(Long userId, Long blockedUserId);
    
    /**
     * 取消拉黑
     * @param userId 当前用户ID
     * @param blockedUserId 被取消拉黑的用户ID
     */
    void unblockUser(Long userId, Long blockedUserId);
    
    /**
     * 获取用户的黑名单列表
     * @param userId 用户ID
     * @return 被拉黑的用户信息列表
     */
    List<UserInfoDTO> getBlacklist(Long userId);
    
    /**
     * 检查用户是否被拉黑
     * @param userId 当前用户ID
     * @param blockedUserId 被检查的用户ID
     * @return 是否被拉黑
     */
    boolean isBlocked(Long userId, Long blockedUserId);
}

